1. Field of the Invention
Embodiments of the present invention relate to methods and systems for ensuring consistent configurations across multiple redundant processors in a stateful system.
2. Related Art
In order to provide greater reliability, many critical computing devices are equipped with multiple redundant processors. In such a system, processors can be classified as Active and Standby. The Active processor has control of the system. A Standby processor takes over if necessary, e.g., if the Active processor should fail. In order for such a switchover to be effected with minimal disruption of services, the Active and Standby processor(s) need to remain synchronized, particularly with respect to the configuration instructions being executed at a given time.
In some situations, the Active and Standby processors can be running different versions of the same operating system. This can occur, for example, during a software upgrade (or downgrade) situation in which the customer wants to change the version of the software that is running without any interruption to service. In order for the system to remain synchronized, both the Active and Standby processors need to be capable of understanding and responding to the same commands.
The above-described scenario applies to any system with redundant processors, where at least one hot Standby processor is kept ready to assume control from the Active processor, if needed. One such system is a network router with redundant processors. Routers with redundant processors are often used in environments where a lapse in connectivity caused by a failure in hardware or software would cause a loss of service.
The operating system that controls the operation of these routers is updated fairly frequently; as part of that update process, the command set understood by the router may be modified, with commands added, removed, or modified. These commands are used to configure the operation and behavior of the router, and the entities that utilize such a router will often have invested time and effort into establishing scripts to configure their router.
During a software upgrade, the router will end up running two different versions of the operating system on the Active and Standby processors. If the different versions do not have precisely the same command set, a command executed on the Active processor could succeed, while the same command executed on the Standby processor would fail. Alternatively, the command could produce different results in the differing versions of the router OS. This would lead to a configuration mismatch, as the Active and Standby processors would no longer be in sync with each other. In such a case, the Standby processor would fail to take control of the router without interrupting service, if called upon to do so. The Standby process could fail altogether when the switchover occurs.